import processing.opengl.*;
import oscP5.*;
import netP5.*;

OscP5 serveurWii;

boolean sens = true;
boolean coords = true;

int nextTimeSens=100;
int nextTimeCoords=100;

float angleJoueur1 = 0.00001;
float angleJoueur2 = 0.00001;

float T1=0;
float T2=0;

PFont font;

void setup() {
  size(1024,768,OPENGL);
  frameRate(30);
  strokeWeight(5);
  serveurWii = new OscP5(this,4000);
  serveurWii.plug(this,"joueur1","/wii1");
  serveurWii.plug(this,"joueur2","/wii2");
  font = loadFont("AmericanTypewriter-Bold-48.vlw"); 
  textAlign(CENTER);
  noCursor();
}

public void joueur1(float pitch) {
  if(coords){
    if(sens){
    angleJoueur1= pitch;
  }else{
    angleJoueur1= 1-pitch;
  }
  }
  else{
    if(sens){
    angleJoueur2= pitch;
  }else{
    angleJoueur2= 1-pitch;
  }
  }
}

public void joueur2(float pitch) {
  if(coords){
    if(sens){
    angleJoueur2= pitch;
  }else{
    angleJoueur2= 1-pitch;
  }
  }
  else{
    if(sens){
    angleJoueur1= pitch;
  }else{
    angleJoueur1= 1-pitch;
  }
  }
}

void draw(){
  
  if((int(millis()/100)%nextTimeSens)==0){
    nextTimeSens=int(random(10,100));
   sens=!sens;
   background(25); 
  }
  else
  {
    background(0);
  }
  
  
  if((int(millis()/100)%nextTimeCoords)==0){
   nextTimeCoords=int(random(10,100));
   coords=!coords;
   background(0,50,0); 
  }
  else
  {
    background(0);
  }
  
 println(("Wii1 pitch = : "+angleJoueur1).substring(0,19)+("   Wii2 pitch = : "+angleJoueur2).substring(0,22)); 
 float J1 = angleJoueur1*3+(1-angleJoueur2)*7;
 float J2 = angleJoueur2*3+(1-angleJoueur1)*7;
 
 T1=T1+J1/frameRate;
 T2=T2+J2/frameRate;
 fill(255,100,100);
 text("1: "+int(T1),width/2,height/2-40);
 fill(100,100,255);
 text("2: "+int(T2),width/2,height/2-20);
 
 println(("Score 1: "+J1).substring(0,12)+(" Score 2: "+J2).substring(0,13)); 
 translate(angleJoueur1*width,angleJoueur2*height);
 stroke(J1*255/10,0,J2*255/10);
 sphere(10);
 //box(300,300,300); 
}

void oscEvent(OscMessage theOscMessage) {
  //println("### received an osc message.");
  //println("### addrpattern\t"+theOscMessage.addrPattern());
  //println("### typetag\t"+theOscMessage.typetag());
}
